Device initiated mode switching

ABSTRACT

Provided are a method, system, deployment and article of manufacture, wherein in one embodiment, a mode of operation may be switched to a service mode by detecting a device inserted into a connector of an input/output port of a system. In the illustrated embodiment, the device has a connector and a wire which loops a code received from the input/output port back to the input/output port. Upon detecting receipt of the transmitted code, the mode of operation may be switched to a service mode. Other embodiments are described and claimed.

RELATED APPLICATIONS

This application is a continuation application of application Ser. No.10/990,912, filed Nov. 16, 2004, entitled “DEVICE INITIATED MODESWITCHING”, assigned to the assignee of the present application, andincorporated by reference in its entirety.

BACKGROUND

1. Field

The present invention relates to a method, system, and an article ofmanufacture for switching a mode of operation.

2. Description of the Related Art

Computer systems frequently have more than one mode of operation. Forexample, a computer system may have a normal operational mode for normaloperations. In addition, a service mode is often provided to facilitatetroubleshooting and other operations. Various input devices have beenutilized to switch the mode of operation to a service mode. For example,a computer system may have a key-operated switch which has a “normaloperation” position and a “service operation” position. An operator mayinsert the key into the switch and turn the switch to the “serviceoperation” position to switch the mode of operation of the system fromthe normal operational mode to a service mode.

Other computer systems have a keyboard with various input keys. In oneknown computer system, depressing a key at an appropriate time duringthe boot operation may cause the computer system to interrupt the normalboot mode of operation and switch to a different boot mode which leadsto a service operational mode sometimes referred to as a “safe mode” tofacilitate troubleshooting.

A computer system may have one or more embedded devices, each of whichmay itself be a specialized computer system that is part of a largersystem such as a host computer system. For example, a storage controllermay be embedded in a host computer. The embedded storage controller maybe housed on a single microprocessor board with the programs stored inROM or other types of memory. Some embedded systems include an operatingsystem. Other embedded systems may be so specialized that the entirelogic can be implemented as a single program.

An embedded system may itself have, like a host system, multipleoperational modes including a service mode. For example, the EnterpriseStorage System (ESS), an embedded storage controller marketed by IBMCorporation, has a service mode which may be entered during the bootprocess. This embedded storage controller has an operating system whichis loaded as a user process of the operating system of the hostcomputer. Hence, in this example, the embedded storage controlleroperating system may be loaded as a part of a startup sequence initiatedas the operating system of the host computer system is loaded. Theembedded storage controller operating system may have its own startupsequence which, absent operator intervention, loads code which permitsnormal operation.

However, should the operator wish to direct the embedded storagecontroller to the storage controller service mode instead of the storagecontroller normal operation mode, the operator can insert a specialprogram stored on a floppy disk into a floppy disk drive mounted on theembedded storage controller chassis and restart the host computer. Asthe host computer startup sequence initiates the embedded storagecontroller startup sequence, the embedded storage controller startupsequence detects the special program on the floppy disk and loads theservice mode code instead of the normal operation mode code. Theoperator may then operate the storage controller in the service mode toperform troubleshooting or other operations appropriate for the servicemode.

To switch back to the normal operational mode for the embedded storagecontroller, the floppy disk containing the special program may beremoved from the storage controller floppy disk drive and the hostcomputer may be restarted. As the host computer startup sequenceinitiates the embedded storage controller startup sequence, the embeddedstorage controller startup sequence does not detect the special programon a floppy disk and loads the normal operation mode code instead of theservice mode code.

SUMMARY OF THE DESCRIBED EMBODIMENTS

Provided are a method, system, deployment and article of manufacture,wherein in one embodiment, a mode of operation may be switched to aservice mode by detecting a device inserted into a connector of aninput/output port of a system. In the illustrated embodiment, the devicehas a connector and a wire which loops a code received from theinput/output port back to the input/output port. Upon detecting receiptof the transmitted code, the mode of operation may be switched to aservice mode. Other embodiments are described and claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

Referring now to the drawings in which like reference numbers representcorresponding parts throughout:

FIG. 1 illustrates a block diagram of a computing environment, inaccordance with certain described embodiments;

FIG. 2 illustrates logic for switching a mode of operation in responseto a device connected to an input/output port, in accordance withcertain described embodiments;

FIG. 3 illustrates one embodiment of a device and connector suitable formode switching; and

FIG. 4 illustrates a block diagram of a computer architecture in whichcertain described aspects may be implemented.

DETAILED DESCRIPTION

In the following description, reference is made to the accompanyingdrawings which form a part hereof and which illustrate severalembodiments. It is understood that other embodiments may be utilized andstructural and operational changes may be made without departing fromthe scope of the present embodiments.

FIG. 1 illustrates a block diagram of a computing environment, inaccordance with certain embodiments of the description provided herein.A computational device which is a host computer system 100 in thisembodiment, is shown to have an embedded computer system which, in thisembodiment is a storage controller 101 coupled to a secondary storage102. Although the secondary storage 102 is shown external to the hostcomputer system 100 and the embedded storage controller 101, in certainembodiments the secondary storage 102 may be internal to the hostcomputer system 100 or the storage controller 101. In additionalembodiments, additional host computer systems (not shown), such as, ahost system that performs Input/Output (I/O) operations with respect tothe host computer system 100 may be utilized.

The host computer system 100 may include a personal computer, aworkstation, a server, a mainframe, a hand held computer, a palm topcomputer, a telephony device, a network appliance, a blade computer, astorage controller, etc. Similarly, the embedded computer system 101 mayinclude a personal computer, a workstation, a server, a mainframe, ahand held computer, a palm top computer, a telephony device, a networkappliance, a blade computer, a storage controller, etc. The secondarystorage 102 may include a direct access storage device, such as, a disk,a tape, a Read/Write DVD, a Read/Write CDROM, a Redundant Array ofIndependent Disks (RAID), Just a Bunch of Disks (JBOD), etc., or anyother storage device. Each of the secondary storage 102, the hostcomputer system 100 and the embedded computer system 101 may be coupledto one or more of the others by a network (not shown), such as theInternet, an intranet, a Local area network (LAN), a Storage areanetwork (SAN), a Wide area network (WAN), a wireless network, etc. Eachof the secondary storage 102, the host computer system 100 and theembedded computer system 101 may alternatively be coupled to one or moreof the others without a network, such as through direct lines, commonbus systems, etc.

The host computer system 100 may include a central processing unit (CPU)104, a memory 106, a firmware 108, and an operating system 110.Similarly, the embedded computer system 101 may include a CPU 114, amemory 116, a firmware 118, an operating system 120, and an input/outputport 130.

Each CPU 104, 114 may comprise a complex instruction set computing(CISC) processor, a reduced instruction set computing (RISC) processor,or any other processor. While only a single CPU 104, 114 is shown forthe associated system 100, 101, in certain embodiments the host computersystem 100 or the embedded computer system 101 may each includeadditional CPUs to form a multiprocessing system.

Each memory 106, 116 may comprise a random access memory (RAM). Eachmemory 106, 116 may also be referred to as physical memory. In certainembodiments, the memory 106, 116 may be included in chips coupled to abus in the associated computer system 100, 101. Each memory 106, 116 maybe volatile, which means that the memory may require a steady flow ofelectricity to maintain the contents of the memory 106, 116.Alternatively, each memory 106, 116 may be nonvolatile.

Each firmware 108, 118 may include programs or data that may have beenwritten onto read-only memory (ROM), programmable read only memory(PROM), erasable programmable read-only memory (EPROM), etc. Eachfirmware 108, 118 may be a combination of hardware and software.

Each operating system 110, 120 may be software that controls theexecution of system and application programs that execute in theassociated computer system 100, 101. Each operating system 110, 120 mayprovide various services to the system and application programs thatexecute in the associated computer system 100, 101. In certainembodiments, each operating system 110, 120 may include the LINUXoperating system, the UNIX operating system, the AIX operating system,or some other operating system.

As previously mentioned, in the illustrated embodiment, the embeddedcomputer system 101 is an embedded storage controller. It is appreciatedthat the embedded computer system 101 may be other types of devices asset forth above. In this example, the storage controller 101 has aserial input/output port 130 coupled by an internal bus to the CPU 114.Data may be input and output through the serial input/output port 130 inaccordance with a modem protocol such as the RS/232 serial dataprotocol, for example. It is appreciated that the input/output port 130may be other types of input/output ports including parallel data ports,network ports, telephony ports, etc. and may operate in accordance withother data transmission protocols including universal serial busprotocols, firewire protocols, printer bus protocols, ISO 7816 SmartCard protocol, etc.

The input/output port 130 has an external connector 132 mounted to themainboard 133 of the storage controller 101. In the illustratedembodiment, the external connector 132 is a female connector 132constructed in accordance with the RJ11 socket protocol or standard. Itis appreciated that the input/output port 130 may utilize other types ofconnectors including male connectors, and may be constructed inaccordance with other types of connector protocols or standardsincluding RJ45 and an Ethernet protocol.

The female connector 132 is adapted to receive an external maleconnector 134 of a device 136. As explained below, the device 136 whenconnected to the connector 132 of the input/output port 130 of theembedded storage controller 101, may be detected by the storagecontroller 101. In response, the operational mode of the storagecontroller 101 may be switched from one mode such as a normaloperational mode, to a different operational mode, such as a servicemode.

In the illustrated embodiment, the external connector 134 is a maleconnector constructed in accordance with the RJ11 connector protocol orstandard as shown in FIG. 3. It is appreciated that the device 136 mayutilize other types of connectors including female connectors, and maybe constructed in accordance with other types of connector protocols orstandards including RJ45 and an Ethernet protocol.

FIG. 2 illustrates logic for switching the operational mode of acomputer system such as an embedded storage controller 101, in responseto insertion of a device such as the device 136 into the connector 134of an input/output port 130 of the system 101. In the illustratedembodiment, an operational mode is initiated (block 200). In thisexample, the host computer system 100 performs a startup sequence whichincludes an initial program load (IPL) or a reinitialized program load(reIPL) of the host computer system 100, where a reIPL is a second orsubsequent IPL of the host computer system 100. In certain embodiments,in an IPL or a reIPL the host computer system 100 may undergo a bootsequence. For example, an IPL or a reIPL process may include testing thememory 106 and loading the operating system 110, device drivers, andother applications resident in the host computer system 100.

In the illustrated embodiment, the startup sequence of the host computersystem 100 also includes a script, for example, which loads theoperating code of the embedded storage controller 101. In this example,the operating code of the embedded storage controller 101 includes itsown startup sequence, such as an initial microcode load (IML), forexample.

In another operation, a determination is made (block 202) as to whetherthe presence of a device connected to the input/output port of theembedded controller 101, has been detected. For example, a determinationmay be made as to whether the device 136 is connected (via theconnectors 134, 132) to the input/output port 130 of the controller 101.

In the illustrated embodiment, the startup sequence of the embeddedstorage controller 101 initiated by the script of the startup sequenceof the host computer system 100, can include a test program which probesthe serial input/output port 130 to detect the presence of device 136.For example, the storage controller test program can write out a uniquestring of test data to the transmit (TX) line of the serial input/outputport 130. In this example, the device 136 may be configured to return tothe receive (RX) line of the serial input/output port 130, the same datastring received by the device 136 on the TX line of the serialinput/output port 130. Thus, if the embedded storage controller 101receives back from the device 136 the same string of test data that ittransmitted out the serial input/output port 130, the presence of thedevice 136 in the serial input/output port 130 may be detected.

FIG. 3 shows one embodiment of the device 136 and its connector 134 ingreater detail. As shown therein, the device 136 of this example is inthe form of a “dongle” and comprises a single loop back wire 300 whichis connected at one end to the transmit (TX) terminal 304 of theconnector 134, and is connected at its other end to the receive (RX)terminal 302 of the connector 134. In this manner, the loop back wire300 channels any data string received from the transmit (TX) line of theserial input/output port 130, back to the receive (RX) line of theserial input/output port 130, when the connector 134 of the wire 300 isconnected to the connector 132 of the serial input/output port 130. Itis appreciated that the particular terminals which are utilized by aninput/output port for transmit (TX) or receive (RX) may vary, dependingupon the particular application.

If it is determined (block 202) by the test program of the embeddedstorage controller 101, that the device 136 is connected (via theconnectors 134, 132) to the serial input/output port 130 of thecontroller 101, the embedded storage controller 101 can initiate aswitch (204) to a service mode of operation instead of a normal mode ofoperation. In the illustrated embodiment, the startup sequence of theembedded storage controller 101, can copy operating code to be loadedfor a service mode instead of operating code for the normal operationalmode. Upon completion of the IPL by the host computer system 100, theIML process begins, observes the service mode code and halts the IML ofthe normal mode operating code so that service can be performed. In oneembodiment, one or more appropriate indicators on the mainboard 133 maybe activated to indicate to the service personnel that the embeddedstorage controller 101 is operating in the service mode.

If it is determined (block 202) by the test program of the embeddedstorage controller 101, that the device 136 is not connected (via theconnectors 134, 132) to the serial input/output port 130 of thecontroller 101, that is, if it is determined that the string of testdata sent to the transmit (TX) line of the serial input/output port 130was not received back at the receive (RX) line of the serialinput/output port 130, the embedded storage controller 101 can continue(block 206) to the normal mode of operation. In the illustratedembodiment, the startup sequence of the embedded storage controller 101,can copy operating code to be loaded for the normal operational mode.Upon completion of the IPL by the host computer system 100, the IMLprocess begins, loading the normal operating code for the normal mode ofoperation.

In the illustrated embodiment, the device 136 is a single wire. It isappreciated that the device 136 may include a plurality of wires.Moreover, the device 136 may be any of a variety of devices suitable totransmit and receive codes in which the transmit and receive codes maybe the same or different. Examples of suitable devices include dongles,laptop computers, personal digital assistants (PDA), logic circuits,etc.

Additional Implementation Details

The described techniques may be implemented as a method, apparatus,deployment or article of manufacture using standard programming and/orengineering techniques to produce software, firmware, hardware, or anycombination thereof. The term “article of manufacture” as used hereinrefers to code or logic implemented in hardware logic (e.g., anintegrated circuit chip, Programmable Gate Array (PGA), ApplicationSpecific Integrated Circuit (ASIC), etc.) or a computer readable medium(e.g., magnetic storage medium, such as hard disk drives, floppy disks,tape), optical storage (e.g., CD-ROMs, optical disks, etc.), volatileand non-volatile memory devices (e.g., EEPROMs, ROMs, PROMs, RAMs,DRAMs, SRAMs, firmware, programmable logic, etc.). Code in the computerreadable medium is accessed and executed by a processor. The code inwhich embodiments are made may further be accessible through atransmission media or from a file server over a network. In such cases,the article of manufacture in which the code is implemented may comprisea transmission media, such as a network transmission line, wirelesstransmission media, signals propagating through space, radio waves,infrared signals, etc. Of course, those skilled in the art willrecognize that many modifications may be made to this configurationwithout departing from the scope of the embodiments, and that thearticle of manufacture may comprise any information bearing medium knownin the art.

Certain embodiments may be directed to a method for deploying computinginstruction by a person or automated processing integratingcomputer-readable code into a computing system, wherein the code incombination with the computing system is enabled to perform theoperations of the described embodiments.

In the illustrated embodiment, the computer system 101 has beendescribed as an embedded storage controller. The storage controller 101may lack user operable input or output devices other than the connector132 of the serial input/output port 130. It is appreciated that thesystem 101 may be other types of computer systems. FIG. 4 illustrates ablock diagram of a computer architecture in which certain aspects of thedescription provided herein may be implemented. The computer system 101may implement a computer architecture 800 having a processor 802 (e.g.,CPU 104), a memory 804 (e.g., a volatile memory device, such as, memory106), and storage 806 (e.g., a non-volatile storage, magnetic diskdrives, optical disk drives, tape drives, etc.). In certain embodimentsthe storage 806 may include the secondary storage 102. The storage 806may comprise an internal storage device, an attached storage device or anetwork accessible storage device. Programs in the storage 806 may beloaded into the memory 804 and executed by the processor 802 in a mannerknown in the art. The architecture may further include a network card808 to enable communication with a network. The architecture may alsoinclude at least one input port 810 for various devices such as adongle, keyboard, a touchscreen, a pen, voice-activated input, etc. Thearchitecture may include at least one output 812, such as a displaydevice, an indicator, a speaker, a printer, etc.

The logic of FIG. 2 describes specific operations occurring in aparticular order. Further, the operations may be performed in parallelas well as sequentially. In alternative embodiments, certain of thelogic operations may be performed in a different order, modified orremoved and still implement embodiments of the present invention.Moreover, steps may be added to the above described logic and stillconform to the embodiments. Yet further steps may be performed by asingle process or distributed processes.

Many of the software and hardware components have been described inseparate modules for purposes of illustration. Such components may beintegrated into a fewer number of components or divided into a largernumber of components. Additionally, certain operations described asperformed by a specific component may be performed by other components.

Therefore, the foregoing description of the embodiments has beenpresented for the purposes of illustration and description. It is notintended to be exhaustive or to limit to the precise form disclosed.Many modifications and variations are possible in light of the aboveteaching.

AIX, Enterprise Storage Server (ESS) are trademarks of InternationalBusiness Machines Corp.

UNIX is a trademark of the Open Group.

1. A method comprising: detecting the presence of a device having afirst connector inserted into a second connector of an input/output portof a system; and switching the mode of operation of said system from afirst operational mode to a service mode in response to said devicedetection.
 2. The method of claim 1 wherein said input/output port is aserial port and wherein said first connector and said second connectorare each RJ11 standard connectors.
 3. The method of claim 2 wherein saiddetecting includes detecting signals routed by the device from atransmit terminal of said second connector back to a receive terminal ofsaid second connector.
 4. The method of claim 3 wherein said routedsignals are routed over a wire shorting said receive terminal to saidtransmit terminal.
 5. The method of claim 1 wherein said firstoperational mode includes a first booting process and said service modeincludes a second booting process and wherein said switching includesswitching said first booting process to said second booting process inresponse to said device detection.
 6. The method of claim 1 wherein saidsystem includes a controller embedded in said system and wherein saidsecond connector is positioned on a mainboard of said embeddedcontroller.
 7. The method of claim 1 wherein said device is a donglecomprising said first connector and a wire shorting a receive terminalof said first connector to a transmit terminal of said first connector.8. The method of claim 1 wherein said detecting includes said systemtransmitting a code to said input/output port, said device receivingsaid code and returning said code back to said input/output port, andsaid system detecting receipt of said transmitted code.
 9. A system,comprising an operating system; a host processor having a memory adaptedto maintain said operating system; an embedded controller having a firstoperational mode of operation and a service mode of operation, and aninput/put port having a socket; and a device having a male connectoradapted to be inserted into said socket; wherein said controller isadapted to: detect the presence of said device male connector insertedinto said socket of said input/output port of said embedded controller;and switch the mode of operation of said embedded controller from saidfirst operational mode to said service mode in response to said devicedetection.
 10. The system of claim 9 wherein said input/output port is aserial port and wherein said male connector and said socket are eachRJ11 standard connectors.
 11. The system of claim 10 wherein said sockethas a transmit terminal and a receive terminal and wherein said deviceis adapted to rout signals received by the device from said transmitterminal of said socket back to said receive terminal of said socket.12. The system of claim 11 wherein said device has a wire shorting saidreceive terminal to said transmit terminal when said device maleconnector is inserted into said socket, said wire being adapted to routesignals from said transmit terminal to said receive terminal.
 13. Thesystem of claim 9 wherein said first operational mode includes a firstbooting process and said service mode includes a second booting processand wherein said switching includes switching said first booting processto said second booting process in response to said device detection. 14.The system of claim 9 wherein said embedded controller includes amainboard and wherein said socket is positioned on said mainboard ofsaid embedded controller.
 15. The system of claim 9 wherein said sockethas a transmit terminal and a receive terminal and wherein said deviceis a dongle comprising said male connector and a wire adapted to shortsaid receive terminal of said socket to said transmit terminal of saidsocket when said male connector is inserted into said socket.
 16. Thesystem of claim 9 wherein said embedded controller detecting includestransmitting a code to said input/output port, said device receivingsaid code and returning said code back to said input/output port, andsaid embedded controller detecting receipt of said transmitted code. 17.An article of manufacture comprising: code enabled to be executed by asystem to perform operations, wherein the system has a host processorhaving a memory adapted to maintain an operating system, an embeddedcontroller having a first operational mode of operation and a servicemode of operation, and an input/put port having a socket, and a devicehaving a male connector adapted to be inserted into said socket, andwherein the operations comprise: detecting the presence of said devicemale connector inserted into said socket of said input/output port ofsaid embedded controller; and switching the mode of operation of saidembedded controller from said first operational mode to said servicemode in response to said device detection.
 18. The article of claim 17wherein said input/output port is a serial port and wherein said maleconnector and said socket are each RJ11 standard connectors.
 19. Thearticle of claim 18 wherein said socket has a transmit terminal and areceive terminal and wherein said device is adapted to rout signalsreceived by the device from said transmit terminal of said socket backto said receive terminal of said socket.
 20. The article of claim 19wherein said device has a wire shorting said receive terminal to saidtransmit terminal when said device male connector is inserted into saidsocket, said wire being adapted to route signals from said transmitterminal to said receive terminal.
 21. The article of claim 17 whereinsaid first operational mode includes a first booting process and saidservice mode includes a second booting process and wherein saidswitching includes switching said first booting process to said secondbooting process in response to said device detection.
 22. The article ofclaim 17 wherein said embedded controller includes a mainboard andwherein said socket is positioned on said mainboard of said embeddedcontroller.
 23. The article of claim 17 wherein said socket has atransmit terminal and a receive terminal and wherein said device is adongle comprising said male connector and a wire adapted to short saidreceive terminal of said socket to said transmit terminal of said socketwhen said male connector is inserted into said socket.
 24. The articleof claim 17 wherein said embedded controller detecting includestransmitting a code to said input/output port, said device receivingsaid code and returning said code back to said input/output port, andsaid embedded controller detecting receipt of said transmitted code. 25.A method for deploying computing instructions, comprising integratingcomputer-readable code into a system, wherein the system has a hostprocessor having a memory adapted to maintain an operating system, anembedded controller having a first operational mode of operation and aservice mode of operation, and an input/put port having a socket, and adevice having a male connector adapted to be inserted into said socket,and wherein the code in combination with system is enabled to cause thesystem to perform: detecting the presence of said device male connectorinserted into said socket of said input/output port of said embeddedcontroller; and switching the mode of operation of said embeddedcontroller from said first operational mode to said service mode inresponse to said device detection.
 26. The method of claim 25 whereinsaid input/output port is a serial port and wherein said male connectorand said socket are each RJ11 standard connectors.
 27. The method ofclaim 26 wherein said socket has a transmit terminal and a receiveterminal and wherein said device is adapted to rout signals received bythe device from said transmit terminal of said socket back to saidreceive terminal of said socket.
 28. The method of claim 27 wherein saiddevice has a wire shorting said receive terminal to said transmitterminal when said device male connector is inserted into said socket,said wire being adapted to route signals from said transmit terminal tosaid receive terminal.
 29. The method of claim 25 wherein said firstoperational mode includes a first booting process and said service modeincludes a second booting process and wherein said switching includesswitching said first booting process to said second booting process inresponse to said device detection.
 30. The method of claim 25 whereinsaid embedded controller includes a mainboard and wherein said socket ispositioned on said mainboard of said embedded controller.
 31. The methodof claim 25 wherein said socket has a transmit terminal and a receiveterminal and wherein said device is a dongle comprising said maleconnector and a wire adapted to short said receive terminal of saidsocket to said transmit terminal of said socket when said male connectoris inserted into said socket.
 32. The method of claim 25 wherein saidembedded controller detecting includes transmitting a code to saidinput/output port, said device receiving said code and returning saidcode back to said input/output port, and said embedded controllerdetecting receipt of said transmitted code.
 33. A device for use withthe socket of an input/output port of an embedded controller having afirst operational mode of operation and a service mode of operation,wherein said socket has a transmit terminal and a receive terminal, thedevice comprising: a male connector adapted to be inserted into saidsocket; and a circuit adapted to rout signals received by the devicefrom said transmit terminal of said socket back to said receive terminalof said socket.
 34. The device of claim 33 wherein said input/outputport is a serial port and wherein said male connector and said socketare each RJ11 standard connectors.
 35. The device of claim 34 whereinsaid circuit includes a wire shorting said receive terminal to saidtransmit terminal when said device male connector is inserted into saidsocket, said wire being adapted to route signals from said transmitterminal to said receive terminal.